// 作用域测试文件
console.log("--- 作用域测试 ---");

// 测试1：简单赋值
console.log("测试1：简单赋值");
let a = 5;
console.log("初始值 a =", a);
a = 10;
console.log("赋值后 a =", a);

// 测试2：while循环
console.log("\n测试2：while循环");
let b = 0;
let i = 1;
console.log("循环前 b =", b);
while (i <= 3) {
  b = b + i;
  console.log("循环中 i =", i, "b =", b);
  i = i + 1;
}
console.log("循环后 b =", b);

// 测试3：for循环变量在外部声明
console.log("\n测试3：for循环，外部变量");
let c = 0;
let j = 1;
console.log("循环前 c =", c, "j =", j);
for (; j <= 3; j = j + 1) {
  c = c + j;
  console.log("循环中 j =", j, "c =", c);
}
console.log("循环后 c =", c, "j =", j);

// 测试4：块作用域
console.log("\n测试4：块作用域");
let d = 5;
console.log("块前 d =", d);
{
  d = 10;
  console.log("块中 d =", d);
}
console.log("块后 d =", d);

// 测试5：break
console.log("\n测试5：break语句");
let e = "";
let k = 1;
console.log("循环前 e =", e);
for (; k <= 5; k = k + 1) {
  e = e + k;
  console.log("循环中 k =", k, "e =", e);
  if (k == 3) {
    console.log("执行break");
    break;
  }
}
console.log("break后 e =", e, "k =", k);

console.log("\n--- 测试结束 ---"); 